package com.quanyan.club.service;

import com.quanyan.api.APIResponse;
import com.quanyan.club.entity.vo.req.movement.ReqClubListInfo;
import com.quanyan.club.entity.vo.req.movement.ReqPointPrise;
import com.quanyan.club.entity.vo.req.movement.ReqSendCommentMovement;
import com.quanyan.club.entity.vo.req.movement.ReqSubmitMovement;
import com.quanyan.club.entity.vo.resp.movement.*;
import com.quanyan.common.Plugin.PageObj;

import java.util.List;
import java.util.Map;

/**
 * @author xian-guo
 * @email 498152332@qq.com
 * @date 2016/11/30.
 */
public interface ClubMovementService {

    /**
     * 获取俱乐部动态
     * @param reqClubListInfo
     * @return
     */
    APIResponse<PageObj<List<RespMovementListInfo>>> getMovementListInfo(ReqClubListInfo reqClubListInfo);

    /**
     * 发布动态
     * @param reqSubmitMovement
     * @return
     */
    APIResponse submitMovementInfo(ReqSubmitMovement reqSubmitMovement);


    /**
     * 获取俱乐部关联的去除取消的活动
     * @param reqClubListInfo
     * @return
     */
    APIResponse<PageObj<List<RespClubActivityInfo>>> getClubBindActivity(ReqClubListInfo reqClubListInfo);

    /**
     * 给动态点赞
     * @param reqPointPrise
     * @return
     */
    APIResponse setPointPrise(ReqPointPrise reqPointPrise);

    /**
     * 发表评论
     * @param reqSendCommentMovement
     * @return
     */
    APIResponse sendCommentToMovement(ReqSendCommentMovement reqSendCommentMovement);

    /**
     * 动态详情
     * @param mvId
     * @return
     */
    APIResponse<RespClubMovementDetail> getMovementDetail(Integer mvId,Integer uId);

    /**
     * 动态评论
     * @param reqClubListInfo
     * @return
     */
    APIResponse<PageObj<List<MovementComment>>> getMovementComment(ReqClubListInfo reqClubListInfo);

    /**
     * 点赞人列表
     * @param reqClubListInfo
     * @return
     */
    APIResponse<PageObj<List<PraiseListUserInfo>>> getMovementPraiseList(ReqClubListInfo reqClubListInfo);

    /**
     *
     * type 1:动态 2：评论
     * paramId  动态id or 评论id
     * uId
     * @return
     */
    APIResponse delMovementCommentAndMovement(Map<String,Object> paramMap);
}
